library(geobr)
library(ggplot2)
library(sf)
library(rnaturalearth)
6 Plotando pontos
Vamos carregar os pacotes necessários:
<- read_country(year = 2020)
brasil
<- data.frame(
pontos longitude = c(-46.6333, -43.2075, -47.9292),
latitude = c(-23.5505, -22.9028, -15.7801),
cidade = c("São Paulo", "Rio de Janeiro", "Brasília"))
<- st_as_sf(pontos, coords = c("longitude", "latitude"), crs = 4326)
pontos_sf
ggplot() +
geom_sf(data = brasil, fill = "white", color = "black") +
geom_sf(data = pontos_sf, color = "red", size = 3) +
theme_minimal()
6.1 Plotar o mapa com os pontos, cada um com um formato diferente
ggplot() +
geom_sf(data = brasil, fill = "white", color = "black") +
geom_sf(data = pontos_sf, color = "red", aes(shape = cidade), size = 4) +
theme_minimal() +
scale_shape_manual(values = c("São Paulo" = 16,
"Rio de Janeiro" = 17,
"Brasília" = 18))
6.2 Plotar o mapa com os pontos, cada um com uma cor diferente
ggplot() +
geom_sf(data = brasil, fill = "white", color = "black") +
geom_sf(data = pontos_sf, aes(color = cidade), size = 3) +
theme_minimal() +
scale_color_manual(values = c("São Paulo" = "blue",
"Rio de Janeiro" = "green",
"Brasília" = "red"))
7 Plotando legendas
Vamos utilizar o argumento annotate do ggplot2 para plotar as legendas. Usaremos coordenadas de latitude (y) e longitude (x) para indicar a localização do texto. Os textos serão valores em porcentagem fictícios.
<- ne_states(country = "Brazil", returnclass = "sf")
brazil
ggplot() +
geom_sf(data = brazil, fill="#2D3E50") +
annotate("text", x = -44, y = -18.5, label = "50,9%", color = "orange", size = 3) +
annotate("text", x = -41.5, y = -12, label = "5.3%", color = "orange", size = 3) +
annotate("text", x = -51.5, y = -24.5, label = "8%", color = "orange", size = 3) +
annotate("text", x = -55.5, y = -13, label = "6,6%", color = "orange", size = 3) +
annotate("text", x = -49.7, y = -15.9, label = "4%", color = "orange", size = 3) +
annotate("text", x = -39.2, y = -5, label = "1.3%", color = "orange", size = 3) +
annotate("text", x = -53.3, y = -29.5, label = "5.3%", color = "orange", size = 3) +
annotate("text", x = -48.3, y = -22, label = "2.6%", color = "orange", size = 3) +
annotate("text", x = -50, y = -27.2, label = "0.6%", color = "orange", size = 3) +
annotate("text", x = -55, y = -20, label = "2%", color = "orange", size = 3) +
theme_minimal()
Agora vamos fazer um outro exemplo. Iremos plotar os Estados que fazem parte do MATOPIBA. O MATOPIBA é uma região formada pelo estado do Tocantins e partes dos estados do Maranhão, Piauí e Bahia, onde ocorreu forte expansão agrícola a partir da segunda metade dos anos 1980, especialmente no cultivo de grãos. O nome é um acrônimo formado pelas siglas dos quatro estados estados.
library(ggplot2)
library(geobr)
library(sf)
<- read_country(year=2018)
br = read_state(code_state = 21)
ma = read_state(code_state = 17)
to = read_state(code_state = 22)
pi = read_state(code_state = 29)
ba <- ggplot() +
MATOPIBA geom_sf(data=br, fill="#2D3E50") +
geom_sf(data=ma, fill="lightblue") +
geom_sf(data=to, fill="lightblue") +
geom_sf(data=pi, fill="lightblue") +
geom_sf(data=ba, fill="lightblue")
Agora vamos calcular os centróides dos Estados e nessa localização, plotar a sigla do Estado.
# Função para calcular o centroide dos estados
<- function(state) {
get_centroid st_coordinates(st_centroid(st_union(state)))}
# Obter as coordenadas dos centroides dos estados
<- get_centroid(ma)
centroid_ma <- get_centroid(to)
centroid_to <- get_centroid(pi)
centroid_pi <- get_centroid(ba)
centroid_ba
<- MATOPIBA +
MATOPIBA2 annotate("text", x = centroid_ma[,1], y = centroid_ma[,2], label = "MA", color = "red", size = 3) +
annotate("text", x = centroid_to[,1], y = centroid_to[,2], label = "TO", color = "red", size = 3) +
annotate("text", x = centroid_pi[,1], y = centroid_pi[,2], label = "PI", color = "red", size = 3) +
annotate("text", x = centroid_ba[,1], y = centroid_ba[,2], label = "BA", color = "red", size = 3)
Agora vamos plotar uma legenda referente a área plantada de soja na safra 2022/2023 em cada Estado. De acordo com o Levantamento Sistemático da Produção Agrícola do IBGE, em área plantada, no Piauí a soja ocupou 960.945 ha, Maranhão 1.167.169 ha, Tocantins, 1.305.176 ha e a Bahia, 1.905.000 ha, que gerou uma produção de 19.043.000 toneladas do grão na região.
+
MATOPIBA2 annotate("text", x = -45.0, y = -6.5, label = "1.167.169", color = "orange", size = 3) +
annotate("text", x = -48.0, y = -12.0, label = "1.305.176", color = "orange", size = 3) +
annotate("text", x = -43.0, y = -9.0, label = "960.945", color = "orange", size = 3) +
annotate("text", x = -42.0, y = -14.0, label = "1.905.000", color = "orange", size = 3)